# -*- coding: utf-8 -*-
"""
Created on Thu Nov 21 13:49:33 2019

@author: XCL01
"""


def count():
    fs = []
    for i in range(1, 4):
        def f():
            return i*i
         #因为在12行def函数里面没有出现i的具体值, 所以i是参数, 返回值就是函数
        fs.append(f)#里面存了三个i*i
    print(fs[0]())#里面存的是i*i, 调用的时候i已经是3了
    return fs
    #第10行说明fs是空list, 在16行也说明fs不是参数, 所以这里返回的就是数,不是函数
f1 = count()#这里f1是个list. 里面放的是三个函数
print(f1, isinstance(f1, list))
print(f1[0]())#拿出f1第一个函数, 进行计算
def count1():
    fs = []
    for i in range(1, 4):
        def f(i):
             return i*i
         #这里25行def函数里面说明i是常量, 不是参数了, 所以这里返回的就是数值, 不是函数
        fs.append(f(i))
    return fs
f2 = count1()#这个count1函数就不是返回函数, 是普通的函数
print(f2)